Code Division Multiple Access (CDMA) is a channel access method used by radio communication technologies. CDMA enables signals to be multiplexed over the same channel by assigning each transmitter a code. The data bits are combined with a code so that the signal can only be intercepted by a receiver whose frequency response is programmed with the same code. The code changes at the chipping rate which is much faster than the original sequence of data bits. The result of combining the data signal with the code is a spread spectrum signal that resists interference and enables the original data to be recovered if the original data bits are damaged during transmission. CDMA technology optimizes the use of available bandwidth, and is used in communications such as ultra-high frequency cellular telephone systems.
Wideband CDMA (W-CDMA, or WCDMA) is an International Telecommunications Standard (ITU) derived from CDMA technology. The code in WCDMA technology is a wideband spread signal. WCDMA is found in communications such as 3G mobile telecommunications networks. WCDMA transmits on a pair of 5 MHz-wide carrier channels, whereas narrowband CDMA transmits on 200 kHz-wide channels. WCDMA has been developed into a complete set of specifications. Specifically, details on WCDMA multiplexing, channel coding, interleaving and rate matching are described in “3rd Generation Partnership Project (3GPP); Technical Specification Group Radio Access Network; Multiplexing and Channel Coding (FDD) (3GPP TS 25.212)”, hereinafter referred to as “3GPP TS 25.212”, 3GPP TS 25.212 defines channel coding (e.g., turbo coding), interleaving, and rate matching (through puncturing and repetition) methods.
In general, channel coding encodes a packet of traffic data to generate a packet of code bits. Turbo codes often systematically generate redundant data to messages, allowing a receiver (e.g., a base station or cellular handset) to detect and correct errors in a message without the need to ask the sender for additional data. Encoding might rely on an interleaver to receive input data, shuffle or re-order the input data, and provide the shuffled data as output data. Interleavers are employed in many wireless communication systems to reduce the impact of noise and interference on performance. For example, channel interleaving is commonly utilized to protect against a burst of errors due to noise and interference. At a transmitter, a channel interleaver shuffles code bits from a channel encoder so that consecutive code bits are spread apart in the interleaved bits. When a sequence of interleaved bits is involved in a burst of errors, these interleaved bits are spread apart after the complementary reshuffling by a channel de-interleaver at a receiver. Thus, interleaving breaks temporal correlation between successive bits involved in a burst of errors, which may improve overall system performance. The process of channel coding and interleaving, however, might result in blocks of coded data that have inconvenient size or width with respect to the supported channel rates. In order to match encoded and interleaved data with channel transmission rates, rate matching is employed to increase or decrease (expand or compress) the blocks of encoded data.
As the WCDMA standard is now employed in most modern wireless or cellular devices, efficient implementation of the standard has high priority for manufacturers of these devices (especially for processing speed and power consumption aspects), and manufacturers of base stations for them. Many methods for implementation of the standard's protocol cases exist (e.g. in software, hardware, firmware, etc.) Each case has its own specific implementation and ways of improving resulting performance, but all of them require efficient methods to implement various parts of the proposed protocols. Downlink encoding chains for general transport channels and high speed (HS) transport channels include a number of transformations. One of the most complex and time-consuming transformations of these chains is rate matching. The rate matching method in a WCDMA downlink consists of compressing or expanding of input bit stream into output bit stream of the specified length by means of puncturing of some bits in the case of compression and by means of repetition of some bits in the case of expanding. The patterns of puncturing and repetition are defined in a basic method described in technical specification 3GPP TS 25.212, section 4.2.7.5 (V9.1.0, December 2009). A main disadvantage of this basic method is that it doesn't define pattern regularly over whole input word, but rather each punctured or repeated bit is determined only at next iteration of the method (using current data processor state). This results in low throughput in a case when each iteration of the method processes only a small number of bits.